1. Field of the Invention
The present invention relates to a communications system for providing access to an enterprise server application from a Distributed Component Object Model (DCOM) environment, and more specifically, to a technique for appending a hook to a request for service which prompts efficient server side processing.
2. Description of the Prior Art
The methods by which companies conduct business with their customers are undergoing fundamental changes, due in large part to World Wide Web technology. In addition, the same technology that makes a company accessible to the world, may be used on internal company networks for conducting operational and administrative tasks.
One of the technologies underlying the World Wide Web is the prospect of using component software technologyxe2x80x94the idea of breaking large, complex software applications into a series of pre-built and easily developed, understood, and changed software modules called componentsxe2x80x94as a means to deliver software solutions much more quickly and at a lower cost (source: DCOM: A Business Overview, online at http://www.microsoft.com/ntserver/guide/dcom.asp). The goal is to achieve economies of scale for software deployment across the industry.
A component architecture for building software applications will enable this by: 1) speeding developmentxe2x80x94enabling programmers to build solutions faster by assembling software from pre-built parts; 2) lowering integration costsxe2x80x94providing a common set of interfaces for software programs from different vendors means less custom work is required to integrate components into complete solutions; 3) improving deployment flexibilityxe2x80x94making it easier to customize a software solution for different areas of a company by simply changing some of the components in the overall application; and 4) lowering maintenance costsxe2x80x94isolating software function into discreet components provides a low-cost, efficient mechanism to upgrade a component without having to retrofit the entire application.
A distributed component architecture applies these benefits across a broader scale of multiuser applications. The Distributed Component Object Model (DCOM), developed by Microsoft Corporation, has several strengths that make it a key technology for achieving this. Because it is an ActiveX technology, DCOM works natively with Internet technologies like TCP/IP, the Java language, and the HTTP network protocol, providing xe2x80x9cobject gluexe2x80x9d that will enable business applications to work across the Web. DCOM is also an open technology that runs on multiple platforms.
DCOM has its roots in Microsoft""s object technology, which has evolved over the last decade from DDE (Dynamic Data Exchange, a form of messaging between Windows programs), OLE (Object Linking and Embedding, embedding visual links between programs within an application), COM (the Component Object Model, used as the basis for all object binding), and ActiveX (COM enabled for the Internet). As stated earlier, applications built from components are simply easier to debug and evolve than large, monolithic applications.
The logical boundary for component applications is no longer on a single machine. Businesses want to leverage the benefits of component development across a broader set of shared applications that operate on multiple machines. These types of applications are referred to as xe2x80x9cthree-tierxe2x80x9d or xe2x80x9cn-tierxe2x80x9d applications, where xe2x80x9ctiersxe2x80x9d of application logic, presentation services, business services, and information retrieval and management services, are broken into different components that can communicate directly with each other across a network. To the end user, these applications appear as a seamless extension of their existing desktop environment.
The simplicity, ubiquity, and industry momentum of standard Internet protocols like HTTP make it an ideal technology for linking components together for applications that span machine boundaries. HTTP is easy to program, is inherently cross-platform, and supports an accessible, universal naming service. Much of the excitement around the Java language derives from its potential as a mechanism to build distributed component applications on the Internet. In addition to Java support, DCOM enables components written in other languages, including C, COBOL, Basic, and Pascal, to communicate over the Internet, providing a growth path for existing applications to support Web technology.
As distributed component architectures, such as DCOM, are making their mark as a technology that enables software components to communicate directly with each other across networks, many businesses have a wealth of information that is managed by prior art data base management systems such as DMS, RDMS, DB2, Oracle, Ingres, Sybase, Informix, and many others. In addition, many of the database management systems are available as resources in a larger transaction processing system.
One key to the future success of a business may lie in its ability to capitalize on the ability to interconnect a distributed component architecture, such as DCOM, with existing enterprise On-line Transaction Processing (OLTP) systems. It defeats the two main goals of component-based development, fast time-to-market and lower development costs, if companies are forced to xe2x80x9chand codexe2x80x9d into their component applications the mission critical services that are required for online production systems.
It has been suggested that service requests may be generated and formatted for transfer between an industry standard, personal computer, user terminal and an enterprise OLTP system wherein the service request is honored and results are returned to the user. However, such transfers may include a request to perform a function of the enterprise server which would be more efficiently accommodated by the user side server. In fact, it might be assumed that many, if not most, service requests would entail certain functions best performed on the user side of the interface and other functions which must be performed by the OLTP system.
The present invention overcomes many of the disadvantages associated with the prior art by providing a general purpose mechanism, called a hook, whereby a remote client residing within a Distributed Component Object Model (DCOM) environment requesting service by an enterprise On-Line Transaction Processing (OLTP) system may notify the client side server of functions which should be performed by the client side server rather than the OLTP system. Thus, appending the hook to the service request tends to ensure greater efficiency by routing each function to the appropriate location for performance.
A gateway of the present invention xe2x80x9cmarriesxe2x80x9d the DCOM client/server architecture and the transactional client/server architecture. The services on the OLTP system are designed to accomplish a specific task, for example, update a user""s bank account balance following a debit or credit. In a preferred embodiment, the OLTP system is X/Open compliant. The DCOM Client can be any type of client, including a Visual Basic client, C++ client, or a Web Browser with Active Server Pages (ASP).
A DCOM Client/Server Application is provided visibility to available services on an enterprise OLTP system such as the Unisys 2200 because the Application is linked to a library built from an Enterprise OLTP service view file. This view file defines how input parameters will be provided to the OLTP service, including information on where each input parameter is located in the view file, and the size and type of each input parameter. If the Enterprise OLTP service is to provide output back to DCOM Client/Server Application, another output view file definition is required to communicate how the information will be presented within the output view buffer.
When an OLTP request is issued from a DCOM Client, the DCOM Client Application first builds a buffer containing the service call and the appropriate set of input parameters, then passes this information onto the DCOM Server. The OLTP request may be issued with or without a preprocessing hook which is utilized in accordance with the description below. The DCOM Server receives the service calls from the DCOM Client Application, builds an input buffer from the input parameters, and passes the information to the DGate Gateway via a standard pipe. The DGate Gateway receives the input buffer from the DCOM Server by listening to the pipe.
The gateway checks to see if the DLL is present. If yes, preprocessing is performed as discussed below in detail. If not or after the preprocessing step, the DGate Gateway then forwards the input buffer to the communications program, which in a preferred embodiment is the Open/OLTP HTPic program. Finally, the communications program passes the input buffer to the enterprise node for processing by the requested service.
After the OLTP system services the request, a response is passed back via an output buffer to the DGate Gateway, which returns this buffer to the DCOM Server. DCOM Server then unpacks the output buffer into individual output parameters, and returns the parameters to the DCOM Client application.